"""
挑战介绍
实现一个算法来识别一个字符串 s2 是否是另一个字符串 s1 的旋转。旋转的解释如下：

如果将 s1 从某个位置断开，拆分成两个字符串（可能有一个为空字符串），再将这两个字符串调换顺序后拼接起来，能够得到 s2 ，那么说字符串 s2 是字符串 s1 的旋转。
挑战内容
本次挑战中，你需要在 rotation.py 文件中补充函数 is_substring 及函数 is_rotation 的空缺部分。

is_substring 函数接受两个参数，s1，s2 用于指定传入的两个字符串;

is_substring 函数用于判断传入的一个字符串是否是另一个的子字符串，它需要返回一个布尔值。

is_rotation 函数接受两个参数，s1，s2 用于指定传入的两个字符串;

is_rotation 函数需调用 is_substring 函数，但仅可调用一次;

is_rotation 函数输出一个布尔值，即 True 或者 False。

你需要补充 is_substring 函数及 is_rotation 函数，使 is_rotation 函数可以识别传入的 s2 字符串是否是 s1 字符串的旋转。要求如下：

如果 s2 字符串是 s1 字符串的旋转，则返回 True；
如果 s2 字符串不是 s1 字符串的旋转，则返回 False；
如果传入的字符串有一个是 None 或者空字符，但另外一个不是时，也返回 False。
"""

class Rotation(object):
    """
    s1 = abcd
    s2 = cdab
    s1*2 = abcdabcd
    解题思路： s1 反转后等于s2，则s1 + s1 的值里必包含了s2

    """
    def is_substring(self, s1, s2):
        if s1.find(s2) != -1:
            return True
        return False

    def is_rotation(self, s1, s2):
        if s1 is None or s2 is None or len(s1) != len(s2):
            return False
        return self.is_substring(s1 + s1, s2)